﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Data;
using System.Data.SqlClient;

/// <summary>
/// Descripción breve de Empleado
/// </summary>
public class Empleado
{
    public string codigo { get; set; }
    public string apellidos { get; set; }
    public string nombres { get; set; }
    public string cargo { get; set; }
    public string area { get; set; }
    public string telefono { get; set; }
    public string fechaNacimiento { get; set; }
    public string direccion { get; set; }
    public string dni { get; set; }
    public string correo { get; set; }

    Conexion cn = new Conexion();

	public Empleado()
	{
		
	}

    public DataTable listarTodos()
    {
        SqlDataAdapter da = new SqlDataAdapter("spr_empleado_listar", cn.getCn());
        da.SelectCommand.CommandType = CommandType.StoredProcedure;
        DataTable tabla = new DataTable();
        da.Fill(tabla);
        return tabla;
    }

    public void agregar(Empleado e)
    {
        SqlCommand cmd = new SqlCommand("spr_empleado_agregar", cn.getCn());
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add("@codigo", SqlDbType.Char).Value = e.codigo;
        cmd.Parameters.Add("@apellidos", SqlDbType.VarChar).Value = e.apellidos;
        cmd.Parameters.Add("@nombres", SqlDbType.VarChar).Value = e.nombres;
        cmd.Parameters.Add("@cargo", SqlDbType.Char).Value = e.cargo;
        cmd.Parameters.Add("@area", SqlDbType.Char).Value = e.area;
        cmd.Parameters.Add("@telefono", SqlDbType.VarChar).Value = e.telefono;
        cmd.Parameters.Add("@fechaNacimiento", SqlDbType.Date).Value = e.fechaNacimiento;
        cmd.Parameters.Add("@direccion", SqlDbType.VarChar).Value = e.direccion;
        cmd.Parameters.Add("@dni", SqlDbType.VarChar).Value = e.dni;
        cmd.Parameters.Add("@correo", SqlDbType.VarChar).Value = e.correo;

        try
        {
            cn.getCn().Open();
            cmd.ExecuteNonQuery();
        }
        catch
        {
        }
        finally
        {
            cn.getCn().Close();
        }

    }

    public void actualizar(Empleado e)
    {
        SqlCommand cmd = new SqlCommand("spr_empleado_actualizar", cn.getCn());
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add("@codigo", SqlDbType.Char).Value = e.codigo;
        cmd.Parameters.Add("@apellidos", SqlDbType.VarChar).Value = e.apellidos;
        cmd.Parameters.Add("@nombres", SqlDbType.VarChar).Value = e.nombres;
        cmd.Parameters.Add("@cargo", SqlDbType.Char).Value = e.cargo;
        cmd.Parameters.Add("@area", SqlDbType.Char).Value = e.area;
        cmd.Parameters.Add("@telefono", SqlDbType.VarChar).Value = e.telefono;
        cmd.Parameters.Add("@fechaNacimiento", SqlDbType.Date).Value = e.fechaNacimiento;
        cmd.Parameters.Add("@direccion", SqlDbType.VarChar).Value = e.direccion;
        cmd.Parameters.Add("@dni", SqlDbType.VarChar).Value = e.dni;
        cmd.Parameters.Add("@correo", SqlDbType.VarChar).Value = e.correo;

        try
        {
            cn.getCn().Open();
            cmd.ExecuteNonQuery();
        }
        catch
        {
        }
        finally
        {
            cn.getCn().Close();
        }
    }

    public void eliminar(string codigo)
    {
        SqlCommand cmd = new SqlCommand("spr_empleado_eliminar", cn.getCn());
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.Add("@codigo", SqlDbType.Char).Value = codigo;

        try
        {
            cn.getCn().Open();
            cmd.ExecuteNonQuery();
        }
        catch
        {
        }
        finally
        {
            cn.getCn().Close();
        }

    }

}